// Note: For p_pNet, its nodes must be sorted already by topological order.
#ifndef __EFFCAP_H_
#define __EFFCAP_H_
#include <vector>
using namespace std;

class Net_C;
class BoundaryNode_C;
struct LibParserLUT;

class EffCap_C
{
    public:
        class Imp_C;
        EffCap_C(Net_C* p_pNet,double p_dInputTrans,double p_dDelayArcFromPin,const LibParserLUT& p_rTransLUT,const LibParserLUT& p_rDelayLUT,double p_dTolerance=1e-5); 
        ~EffCap_C();
        void run();
        const vector<pair<BoundaryNode_C*,float> >& getDelay();
        const vector<pair<BoundaryNode_C*,float> >& getTrans();

    private:
        Imp_C* _pImp;
};

#endif
